#ifndef EXPAND_HPP
#define EXPAND_HPP

#ifdef _MSC_VER
#pragma once
#endif

#include "jam.hpp"
#include "jam_lists.hpp"

class jam_module;

//NOTE: func_args are used for $(<) and $(>).
JAMLIB_EXPORT void expand_string(const list_of_lists &func_args,
	const jam_module &context, const jam_string &str, jam_list &res, int level=0);

JAMLIB_EXPORT jam_string::const_iterator expand_string(const list_of_lists &func_args,
	const jam_module &context,jam_string::const_iterator pos_begin,
	jam_string::const_iterator pos_end, jam_list &res, int level=0);

jam_string::const_iterator scan_for_var(jam_string::const_iterator begin,
	jam_string::const_iterator end);

#endif //EXPAND_HPP
